//给定一个字符串 s ，请计算这个字符串中有多少个回文子字符串。 
//
// 具有不同开始位置或结束位置的子串，即使是由相同的字符组成，也会被视作不同的子串。 
//
// 
//
// 示例 1： 
//
// 
//输入：s = "abc"
//输出：3
//解释：三个回文子串: "a", "b", "c"
// 
//
// 示例 2： 
//
// 
//输入：s = "aaa"
//输出：6
//解释：6个回文子串: "a", "a", "a", "aa", "aa", "aaa" 
//
// 
//
// 提示： 
//
// 
// 1 <= s.length <= 1000 
// s 由小写英文字母组成 
// 
//
// 
//
// 
// 注意：本题与主站 70 题相同：https://leetcode-cn.com/problems/palindromic-substrings/ 
//
// Related Topics 字符串 动态规划 👍 108 👎 0


package LeetCode.editor.cn;


import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * @author ldltd
 * @date 2025-01-20 10:11:26
 * @description LCR 020.回文子串
 
 */
 
public class A7VOhD {
    public static void main(String[] args) {
    //测试代码
    A7VOhD fun = new A7VOhD();
    Solution solution= fun.new Solution();
        List<Integer> a1=new ArrayList<>();
        List<Integer> a2=new ArrayList<>();
        a1.add(3);
        a1.add(1);
        a1.add(2);
        a2.add(1);
        a2.add(2);
        a2.add(3);
        System.out.println(Objects.equals(a1,a2));
//        "YPHZDLJ4 ".chars().forEach(ch-> System.out.println(ch));
        System.out.println(Integer.valueOf(' '));
        System.out.println(Integer.valueOf(' '));
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
        //因为回文有偶数和奇数两种情况
    //假定都是偶数，把奇数的情况认为是两个中心坐标相等的位置
    //一个长度为n的字符串，有2n-1组的中心  l l+1 和l l
    //其中每组的 l= i/2 r=l+(i%2)
    public int countSubstrings(String s) {
            int n=s.length(),res=0;
        for (int i = 0; i < 2 * n - 1; i++) {
            int l=i/2,r=i/2+i%2;
            while (l>=0&&r<n&&s.charAt(l)==s.charAt(r)){
                --l;
                r++;
                res++;
            }
        }
        return res;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
